/**
 * 组件适配器
 * 用于适配设计器组件和组件库组件之间的数据结构差异
 */

/**
 * 将DynamicRenderer传入的props转换为组件库组件期望的格式
 * @param {Object} props DynamicRenderer传入的props
 * @returns {Object} 转换后的props
 */
export function adaptPropsForLibraryComponent(props) {
  // 始终确保返回 { datas: ... } 结构
  // 如果props中已有datas属性，使用它，否则将所有props包装在datas中
  if (props.datas) {
    // 确保datas是对象，避免异常情况
    return {
      datas: typeof props.datas === 'object' ? props.datas : { ...props }
    };
  } else if (Object.keys(props).length > 0) {
    // 没有datas属性，将所有props包装在datas对象中
    return {
      datas: { ...props }
    };
  }
  // 属性为空的情况，返回空的datas对象
  return { datas: {} };
}

/**
 * 将组件库组件的事件转换为DynamicRenderer期望的格式
 * @param {Object} events 组件库组件触发的事件
 * @returns {Object} 转换后的事件
 */
export function adaptEventsForDesigner(events) {
  // 可以在这里添加事件转换逻辑
  return events;
}

export default {
  adaptPropsForLibraryComponent,
  adaptEventsForDesigner
}; 